<template>
  <view>
    
  </view>
</template>

<script>
import { decideEnv, setWxConfig, isIOS, setWxConfigSync } from '@/unit/common.js';
export default {
  data() {
    return { 
    };
  },
  mounted() {
    console.log('ceshi2');
    let that = this;
    const mapobj = uni.getStorageSync('MAPOBJ');
    if (mapobj) {
      mapobj.showModal = false;
      that.$emit('getmap', mapobj)
      return false;
    }
    
    let isReturn = false;
    uni.showLoading({
      title: '正在获取您的位置，请稍后'
    })
    //开启计时器 5秒
    let timer = setInterval(() => {
      // console.log('time out--------------------')
      if(!isReturn){
        isReturn = true;
        uni.hideLoading()
        uni.showToast({
          title: '当前无法定位，请检查你是否开启权限',
          icon: 'none'
        });
        that.$emit('getmap', {})
      }
      if(timer){
        clearInterval(timer);
        timer = null;
      }
    }, 5*1000);
    // if (decideEnv() && decideEnv() == 'wx') {
    //   if (!isIOS()) {
    //     setWxConfigSync().then(jswx => {
    //       jswx.getLocation({
    //         type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
    //         success: function (res) {
    //           if(isReturn) return;
    //           var latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
    //           var longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
    //           var mapObj = {
    //             lat: latitude,
    //             lng: longitude,
    //             province:  null
    //           }
    //           uni.hideLoading()
    //           that.$emit('getmap', mapObj)
    //           //没有超时，取消计时器
    //           isReturn = true;
    //           if(timer){
    //             clearInterval(timer);
    //             timer = null;
    //           }
    //         },
    //         fail: function (res) {
    //           if(isReturn) return;
    //           that.$emit('getmap', {})
    //           this.$emit('fail')
    //           uni.hideLoading();
    //           uni.showToast({
    //             title: res.errMsg,
    //             icon: 'none'
    //           });
    //           //取消计时器
    //           isReturn = true;
    //           if(timer){
    //             clearInterval(timer);
    //             timer = null;
    //           }
    //         }
    //       });
    //     })
    //   } else {
    //     that.$jswx.ready(function () {
    //       that.$jswx.getLocation({
    //         type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
    //         success: function (res) {
    //           if(isReturn) return;
    //           var latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
    //           var longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
    //           var mapObj = {
    //             lat: latitude,
    //             lng: longitude,
    //             province:  null
    //           }
    //           uni.hideLoading()
    //           that.$emit('getmap', mapObj)
    //           //取消计时器
    //           isReturn = true;
    //           if(timer){
    //             clearInterval(timer);
    //             timer = null;
    //           }
    //         },
    //         fail: function (res) {
    //           if(isReturn) return;
    //           that.$emit('getmap', {})
    //           uni.hideLoading();
    //           this.$emit('fail')
    //           uni.showToast({
    //             title: res.errMsg,
    //             icon: 'none'
    //           });
    //           //取消计时器
    //           isReturn = true;
    //           if(timer){
    //             clearInterval(timer);
    //             timer = null;
    //           }
    //         }
    //       });
    //     });
    //   }
    // } else { 
    window.onLoad  = function() {
      // #ifdef H5
      AMap.plugin('AMap.Geolocation', () => {
        var geolocation = new AMap.Geolocation({
          extensions: 'all',
          maximumAge: 0,
          pName: 'Geolocation',
          convert: true,
          enableHighAccuracy: true,//是否使用高精度定位，默认:true
          timeout: 3000,          //超过10秒后停止定位，默认：5s
          buttonPosition:'RB',    //定位按钮的停靠位置
          buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量，默认：Pixel(10, 20)
          zoomToAccuracy: true   //定位成功后是否自动调整地图视野到定位点
        });
        geolocation.getCurrentPosition((status, result) => {
          if(isReturn) return;
          if (status == 'complete') {
            var mapObj = {
              lat: result.position.lat,
              lng: result.position.lng,
              address:result.formattedAddress,
              province: result.addressComponent ? result.addressComponent.province : null
            }
            uni.hideLoading()
            // uni.setStorageSync('MAPOBJ', mapObj);
            mapObj.showModal = true;
            that.$emit('getmap', mapObj)
          } else {
            that.$emit('getmap', {
              showModal: false
            })
            uni.hideLoading()
            uni.showToast({
              title: '当前无法定位，请检查你是否开启权限',
              icon: 'none'
            });
          }
          //取消计时器
          isReturn = true;
          if(timer){
            clearInterval(timer);
            timer = null;
          }
        })
      }) 
      // #endif
    }
      
    var url = 'https://webapi.amap.com/maps?v=1.4.15&key=42f98d79c8315210186ad2e405eef0ea&callback=onLoad';
    var jsapi = document.createElement('script');
    jsapi.charset = 'utf-8';
    jsapi.src = url;
    document.head.appendChild(jsapi);      
    // }
  },
  onLoad() {
    
  }
}
</script>

<style>

</style>
